﻿using System;
using SharpSqlAnalyzer.nodes;

namespace SharpSqlAnalyzer.stmt.oracle
{
	// Token: 0x02000133 RID: 307
	public class TOracleExecuteProcedure : TCustomSqlStatement
	{
		// Token: 0x060009E6 RID: 2534 RVA: 0x00304019 File Offset: 0x00302219
		public TOracleExecuteProcedure(EDbVendor dbvendor) : base(dbvendor)
		{
			this.sqlstatementtype = ESqlStatementType.sstoracleexecuteprocedure;
		}

		// Token: 0x060009E7 RID: 2535 RVA: 0x00304030 File Offset: 0x00302230
		public override int doParseStatement(TCustomSqlStatement psql)
		{
			if (this.rootNode == null)
			{
				return -1;
			}
			base.doParseStatement(psql);
			TExecuteSqlNode texecuteSqlNode = (TExecuteSqlNode)this.rootNode;
			this.procedureName = texecuteSqlNode.ModuleName;
			this.procedureName.DbObjectType = EDbObjectType.procedure;
			base.DatabaseObjects.Add(this.procedureName);
			this.procedureParameters = texecuteSqlNode.StringValues;
			return 0;
		}

		// Token: 0x170001C3 RID: 451
		// (get) Token: 0x060009E8 RID: 2536 RVA: 0x00304092 File Offset: 0x00302292
		// (set) Token: 0x060009E9 RID: 2537 RVA: 0x0030409A File Offset: 0x0030229A
		public virtual TObjectName ProcedureName
		{
			get
			{
				return this.procedureName;
			}
			set
			{
				this.procedureName = value;
			}
		}

		// Token: 0x170001C4 RID: 452
		// (get) Token: 0x060009EA RID: 2538 RVA: 0x003040A3 File Offset: 0x003022A3
		// (set) Token: 0x060009EB RID: 2539 RVA: 0x003040AB File Offset: 0x003022AB
		public virtual TExpressionList ProcedureParameters
		{
			get
			{
				return this.procedureParameters;
			}
			set
			{
				this.procedureParameters = value;
			}
		}

		// Token: 0x060009EC RID: 2540 RVA: 0x003040B4 File Offset: 0x003022B4
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x060009ED RID: 2541 RVA: 0x003040C4 File Offset: 0x003022C4
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001262 RID: 4706
		private TObjectName procedureName;

		// Token: 0x04001263 RID: 4707
		private TExpressionList procedureParameters;
	}
}
